#include<bits/stdc++.h>

using i64 = long long;

void solve() {
    int n, k;
    std::cin >> n >> k;
    std::vector<int> a(n + 1);
    for (int i = 1; i <= n; i++) {
        std::cin >> a[i];
    }
    if (n == 1) {
        std::cout << a[1] << '\n';
        return;
    }
    std::vector<int> suf(n + 2, -1);
    for (int i = n; i >= 1; i--) {
        suf[i] = std::max(a[i], suf[i + 1]);
    }
    suf[0] = suf[1];
    int ans = a[1] + a[n];
    for (int i = 1; i <= std::min(n, k); i++) {
        ans = std::max(ans, a[i] + suf[std::max(i + 1, n - (k - i + 1))]);
    }   

    std::cout << ans << '\n';
}  

signed main() {
    std::ios::sync_with_stdio(0);
    std::cout.tie(0);   
    std::cin.tie(0);
    
    i64 t = 1; 
    std::cin >> t;
    while (t--) {
        solve();
    }
}

